document.addEventListener('DOMContentLoaded', function () {
    // 通用工具函数
    const utils = {
        validateEmail: function (email) {
            const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
            return re.test(String(email).toLowerCase());
        },
        validatePhone: function (phone) {
            return /^1[3-9]\d{9}$/.test(phone);
        },
        showError: function (element, message) {
            const errorDiv = element.parentElement.querySelector('.error-message');
            errorDiv.textContent = message;
            element.classList.add('error');
        },
        clearError: function (element) {
            const errorDiv = element.parentElement.querySelector('.error-message');
            errorDiv.textContent = '';
            element.classList.remove('error');
        }
    };

    // 返回首页功能
    function initNavigation() {
        // 处理返回首页按钮
        document.querySelectorAll('.home-link').forEach(link => {
            link.addEventListener('click', (e) => {
                e.preventDefault();
                window.location.href = 'ui.html';
            });
        });

        // 处理Logo点击
        document.querySelectorAll('.logo-link').forEach(link => {
            link.addEventListener('click', (e) => {
                e.preventDefault();
                // 添加点击动画
                link.style.transform = 'scale(0.95)';
                setTimeout(() => {
                    window.location.href = 'ui.html';
                }, 200);
            });
        });
    }

    // 登录表单处理
    function handleLogin() {
        const form = document.getElementById('loginForm');
        if (!form) return;

        form.addEventListener('submit', function (e) {
            e.preventDefault();
            let isValid = true;

            const username = document.getElementById('username');
            const password = document.getElementById('password');

            // 用户名验证
            if (username.value.trim() === '') {
                utils.showError(username, '请输入用户名或邮箱');
                isValid = false;
            } else {
                utils.clearError(username);
            }

            // 密码验证
            if (password.value.trim() === '') {
                utils.showError(password, '请输入密码');
                isValid = false;
            } else if (password.value.length < 6) {
                utils.showError(password, '密码不能少于6位');
                isValid = false;
            } else {
                utils.clearError(password);
            }

            if (isValid) {
                // 构造登录请求数据
                const data = {
                    username: username.value,
                    password: password.value
                };

                // 发送登录请求到后端
                fetch('https://your-backend-api-url.com/api/login', {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/json'
                    },
                    body: JSON.stringify(data)
                })
                    .then(response => response.json())
                    .then(responseData => {
                        if (responseData.success) {
                            // 登录成功，跳转到首页
                            alert('登录成功！');
                            window.location.href = 'ui.html';
                        } else {
                            // 登录失败，显示错误信息
                            utils.showError(username, responseData.message);
                            utils.showError(password, responseData.message);
                        }
                    })
                    .catch(error => {
                        console.error('登录请求失败:', error);
                        utils.showError(username, '登录请求失败，请重试');
                        utils.showError(password, '登录请求失败，请重试');
                    });
            }
        });
    }

    // 注册表单处理
    function handleRegister() {
        const form = document.getElementById('registerForm');
        if (!form) return;

        form.addEventListener('submit', function (e) {
            e.preventDefault();
            let isValid = true;

            const elements = {
                username: document.getElementById('regUsername'),
                email: document.getElementById('regEmail'),
                password: document.getElementById('regPassword'),
                confirmPassword: document.getElementById('confirmPassword'),
                phone: document.getElementById('phone')
            };

            // 用户名验证
            if (elements.username.value.trim() === '') {
                utils.showError(elements.username, '请输入用户名');
                isValid = false;
            } else {
                utils.clearError(elements.username);
            }

            // 邮箱验证
            if (elements.email.value.trim() === '') {
                utils.showError(elements.email, '请输入邮箱地址');
                isValid = false;
            } else if (!utils.validateEmail(elements.email.value)) {
                utils.showError(elements.email, '邮箱格式不正确');
                isValid = false;
            } else {
                utils.clearError(elements.email);
            }

            // 密码验证
            if (elements.password.value.trim() === '') {
                utils.showError(elements.password, '请输入密码');
                isValid = false;
            } else if (elements.password.value.length < 6) {
                utils.showError(elements.password, '密码不能少于6位');
                isValid = false;
            } else {
                utils.clearError(elements.password);
            }

            // 确认密码验证
            if (elements.confirmPassword.value!== elements.password.value) {
                utils.showError(elements.confirmPassword, '两次输入的密码不一致');
                isValid = false;
            } else {
                utils.clearError(elements.confirmPassword);
            }

            // 手机号验证
            if (!utils.validatePhone(elements.phone.value)) {
                utils.showError(elements.phone, '请输入有效的手机号码');
                isValid = false;
            } else {
                utils.clearError(elements.phone);
            }

            if (isValid) {
                // 构造注册请求数据
                const data = {
                    username: elements.username.value,
                    email: elements.email.value,
                    password: elements.password.value,
                    phone: elements.phone.value
                };

                // 发送注册请求到后端
                fetch('https://your-backend-api-url.com/api/register', {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/json'
                    },
                    body: JSON.stringify(data)
                })
                    .then(response => response.json())
                    .then(responseData => {
                        if (responseData.success) {
                            // 注册成功，跳转到登录页面
                            alert('注册成功！即将跳转到登录页面');
                            window.location.href = 'login.html';
                        } else {
                            // 注册失败，显示错误信息
                            const errorFields = responseData.errorFields || {};
                            for (const field in errorFields) {
                                const element = elements[field];
                                if (element) {
                                    utils.showError(element, errorFields[field]);
                                }
                            }
                        }
                    })
                    .catch(error => {
                        console.error('注册请求失败:', error);
                        const fields = ['username', 'email', 'password', 'confirmPassword', 'phone'];
                        fields.forEach(field => {
                            const element = elements[field];
                            if (element) {
                                utils.showError(element, '注册请求失败，请重试');
                            }
                        });
                    });
            }
        });
    }

    // 初始化函数
    function init() {
        initNavigation();
        handleLogin();
        handleRegister();

        // 输入时实时清除错误提示
        document.querySelectorAll('input').forEach(input => {
            input.addEventListener('input', () => {
                utils.clearError(input);
            });
        });
    }

    init();
});